#include <interpolate.hpp>

/**
 * This routine returns the list of options using the
 * boost::program_options library. The data returned is typically used
 * as an argument of a Life::Application subclass.
 *
 * \return the list of options
 */
inline
po::options_description
makeOptions()
{
    po::options_description code1doptions("Code1D options");
    code1doptions.add_options()
        ("hsize", po::value<double>()->default_value( 0.1 ), "mesh size")
        ("gmsh", po::value<float>()->default_value( 2.0 ), " version of gmsh( 2.0 or 2.1)")
        ;
    return code1doptions.add( Life::life_options() );
}

/**
 * This routine defines some information about the application like
 * authors, version, or name of the application. The data returned is
 * typically used as an argument of a Life::Application subclass.
 *
 * \return some data about the application.
 */
inline
AboutData
makeAbout()
{
    AboutData about( "interpolate" ,
                     "interpolate" ,
                     "0.2",
                     "Code 1D for -Delta u = f",
                     Life::AboutData::License_GPL,
                     "Copyright (c) 2010 Universite Joseph Fourier");

    about.addAuthor("Vincent Chabannes", "developer", "vincent.chabannes@imag.fr", "");
    return about;

}



/**
 * main function: entry point of the program
 */
int
main( int argc, char** argv )
{
    Interpolate<2,2> moncode( argc, argv, makeAbout(), makeOptions() );

    moncode.run2();
}
